package org.dxw.common.enums;

/**
 * @Author dxw
 * @Date 2023/11/19 0:33
 * @Description
 */
public enum EventListenerEnum {

//    EMAIL_LISTENER(EmailListener.class
//            , Arrays.asList(RechargeMoneyEvent.class, UserRegisterEvent.class)),
//
//    SMS_LISTENER(SmsListener.class
//            , Arrays.asList(UserRegisterEvent.class));
//
//    ;
//
//    private List<Class<? extends ApplicationEvent>> applicationEventClzs;
//
//    private Class listenerClz;
//
//    EventListenerEnum(Class listenerClz, List<Class<? extends ApplicationEvent>> applicationEventClzs) {
//        this.applicationEventClzs = applicationEventClzs;
//        this.listenerClz = listenerClz;
//    }
//
//    public static boolean isInterested(Object listener, ApplicationEvent event){
//        if(listener == null || event == null) throw new IllegalArgumentException("监听器、事件不能为空");
//        EventListenerEnum[] values = values();
//        for (EventListenerEnum value : values) {
//            //listenerClz 类 是否 可以被 listener.getClass()类的对象赋值
//            if(value.listenerClz.isAssignableFrom(listener.getClass())){
//                for (Class<? extends ApplicationEvent> applicationEventClz : value.applicationEventClzs) {
//                    if(applicationEventClz.isAssignableFrom(event.getClass())){
//                        return true;
//                    }
//                }
//            }
//        }
//        return false;
//    }
//
//    public static void main(String[] args) {
//
//    }



}
